package com.mixsmart.core.dao;

import java.util.HashMap;

import com.mixsmart.core.bean.entity.IEntityBean;
import com.mixsmart.spellsql.ICondition;

/**
 * 删除 DAO接口
 * @author lmq
 * @version 1.0
 * @since JDK版本大于等于1.6
 * 2015年12月21日
 */
public interface IDeleteDao {

	/**
	 * 根据条件删除
	 * @param clazz
	 * @param condition 条件对象 <br />
	 * 通过{@link com.mixsmart.spellsql.utils.Cnd}.方法名({@link com.mixsmart.spellsql.utils.Exp}.方法名())来设置条件；<br />
	 * 如：Cnd.where(Exp.eq("name","张三"))
	 * @return 成功返回：true；否则返回：false
	 */
	public boolean delete(Class<? extends IEntityBean> clazz, ICondition condition);
	
	/**
	 * 根据SQL语句删除数据
	 * @param sql SQL语句
	 * @param params 参数
	 * @return 成功返回：true；否则返回：false
	 */
	public boolean deleteSql(String sql, HashMap<String,Object> params);
	
	/**
	 * SQL语句按参数过滤后删除数据
	 * @param sql SQL语句
	 * @param params 参数
	 * @return 成功返回：true；否则返回：false
	 */
	public boolean deleteSqlFilter(String sql, HashMap<String,Object> params);
	
	/**
	 * 根据HQL语句删除数据
	 * @param hql HQL语句
	 * @param params 参数
	 * @return 成功返回：true；否则返回：false
	 */
	public boolean deleteHql(String hql, HashMap<String,Object> params);
	
	/**
	 * HQL语句按参数进行过滤后，删除数据
	 * @param hql HQL语句
	 * @param params 参数
	 * @return 成功返回：true；否则返回：false
	 */
	public boolean deleteHqlFilter(String hql, HashMap<String,Object> params);
	
}
